Public Class SingleVolume
    Public Matrix As Matrix3DInt16
    Public MatrixD As Matrix3DSingle
    'Public nx_ny_nz As New coordinate(0, 0, 0)
    'Public FOV As New coordinate(0, 0, 0)
    'Public Center As New coordinate(0, 0, 0)
    Public HeaderFileName As String
    Public FOV As New CoordinateD(0, 0, 0)
    Public Center As New CoordinateD(0, 0, 0)
    Public OffCenterAngle As New CoordinateD(0, 0, 0)
    Sub New(ByVal Matrix As Matrix3DInt16, ByVal fov As CoordinateD, ByVal center As CoordinateD, Optional ByVal OffCenterAngle As CoordinateD = Nothing)
        Me.Center = center
        Me.FOV = fov
        Me.Matrix = Matrix
        Me.MatrixD = Nothing
        If OffCenterAngle IsNot Nothing Then Me.OffCenterAngle = OffCenterAngle
    End Sub
    Sub New(ByVal MatrixD As Matrix3DSingle, ByVal fov As CoordinateD, ByVal center As CoordinateD, Optional ByVal OffCenterAngle As CoordinateD = Nothing)
        Me.Center = center
        Me.FOV = fov
        Me.MatrixD = MatrixD
        Me.Matrix = Nothing
        If OffCenterAngle IsNot Nothing Then Me.OffCenterAngle = OffCenterAngle
    End Sub
    Sub New(ByVal Matrix As Matrix3DInt16, ByVal MatrixD As Matrix3DSingle, ByVal fov As CoordinateD, ByVal center As CoordinateD, Optional ByVal OffCenterAngleD As CoordinateD = Nothing)
        Me.Center = center
        Me.FOV = fov
        Me.MatrixD = MatrixD
        Me.Matrix = Matrix
        If OffCenterAngle IsNot Nothing Then Me.OffCenterAngle = OffCenterAngle
    End Sub
    Sub New(ByVal matrix As Matrix3DInt16, ByVal resource As SingleVolume)
        Me.Matrix = matrix
        Me.Center = resource.Center
        Me.FOV = resource.FOV
    End Sub
    Sub New(ByVal matrixd As Matrix3DSingle, ByVal resource As SingleVolume)
        Me.MatrixD = matrixd
        Me.Center = resource.Center
        Me.FOV = resource.FOV
    End Sub
    Sub New()

    End Sub
    Overrides Function ToString() As String
        Dim summary As String = ""
        summary += "FOV: " & Me.FOV.ToString() + vbNewLine
        summary += "Center: " & Me.Center.ToString() + vbNewLine
        If Me.Matrix IsNot Nothing Then
            summary += "Size: " & Me.Matrix.Size.ToString() & vbNewLine
            summary += "Angulation: " & Me.OffCenterAngle.ToString() & vbNewLine
        End If
        Return summary
    End Function
End Class

Public Class MultiVolume
    Public Matrix As Matrix4DInt16
    Public nx_ny_nz As New coordinate(0, 0, 0)
    Public FOV As New CoordinateD(0, 0, 0)
    Public Center As New CoordinateD(0, 0, 0)
    Public NumberOfVolumes As Integer
    Public HeaderFileName As String
    Public OffCenterAngle As New CoordinateD(0, 0, 0)
End Class

Public Class MultiVolumeD
    Public Matrix As Matrix4Ddouble
    Public nx_ny_nz As New Coordinate(0, 0, 0)
    Public FOV As New CoordinateD(0, 0, 0)
    Public Center As New CoordinateD(0, 0, 0)
    Public NumberOfVolumes As Integer
    Public HeaderFileName As String
End Class
